﻿package zf.data.ds
{
	import zf.data.ds.node.IListNode;

	/**
	 * 指针接口 
	 * @private
	 * @author Mike.zhang
	 * 
	 */
	public interface IPointer
	{
		/**
		 * 移动指针到第一个元素 
		 * 
		 */
		function first ():void
		/**
		 * 移动指针到最后一个元素 
		 * 
		 */
		function last ():void
		/**
		 * 如果有移动指针到下一个元素，否则不移动 
		 * 
		 */
		function next ():void
		/**
		 * 检测指针下一个元素是否存在，存在返回true 
		 * @return 有则返回true
		 * 
		 */
		function hasNext ():Boolean
		/**
		 * 获取指针所指向的节点，你可以使用 node.data 访问节点的数据 
		 * @return 节点
		 * 
		 */
		function get node ():IListNode
		function set node (v:IListNode):void
		/**
		 * 获取指针所在的链表 
		 * @return 链表
		 * 
		 */
		function get list ():ILinkedList
	}
}